home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Source Code / Zoners Half-Life Tools / common / threads.h < prev    next >
C/C++ Source or Header  |  2000-09-12  |  1KB  |  50 lines

  1. #ifndef THREADS_H__
  2. #define THREADS_H__
  3.  
  4. #if _MSC_VER >= 1000
  5. #pragma once
  6. #endif
  7.  
  8. #define    MAX_THREADS    64
  9.  
  10. typedef enum
  11. {
  12.     eThreadPriorityLow = -1,
  13.     eThreadPriorityNormal,
  14.     eThreadPriorityHigh
  15. }
  16. q_threadpriority;
  17.  
  18. typedef void    (*q_threadfunction) (int);
  19.  
  20. #ifdef SYSTEM_WIN32
  21. #define DEFAULT_NUMTHREADS -1
  22. #endif
  23. #ifdef SYSTEM_POSIX
  24. #define DEFAULT_NUMTHREADS 1
  25. #endif
  26.  
  27. #define DEFAULT_THREAD_PRIORITY eThreadPriorityNormal
  28.  
  29. extern int      g_numthreads;
  30. extern q_threadpriority g_threadpriority;
  31.  
  32. extern void     ThreadSetPriority(q_threadpriority type);
  33. extern void     ThreadSetDefault();
  34. extern int      GetThreadWork();
  35. extern void     ThreadLock();
  36. extern void     ThreadUnlock();
  37.  
  38. extern void     RunThreadsOnIndividual(int workcnt, bool showpacifier, q_threadfunction);
  39. extern void     RunThreadsOn(int workcnt, bool showpacifier, q_threadfunction);
  40.  
  41. #ifdef ZHLT_NETVIS
  42. extern void     threads_InitCrit();
  43. extern void     threads_UninitCrit();
  44. #endif
  45.  
  46. #define NamedRunThreadsOn(n,p,f) { Log("%s\n", #f ":"); RunThreadsOn(n,p,f); }
  47. #define NamedRunThreadsOnIndividual(n,p,f) { Log("%s\n", #f ":"); RunThreadsOnIndividual(n,p,f); }
  48.  
  49. #endif //**/ THREADS_H__
  50.